package com.stedu.bean;

import com.alibaba.excel.annotation.ExcelIgnore;
import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.format.DateTimeFormat;
import com.alibaba.excel.annotation.write.style.ColumnWidth;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.util.Date;
import java.util.List;

/**
 * 学生表
 */
@Data
@AllArgsConstructor
@NoArgsConstructor
public class Student {
    /**
     * 主键
     */
    @ExcelProperty("学生ID")
    private Integer sid;

    /**
     * 学生编号
     */
    @ExcelProperty("学号")
    @NotBlank(message = "学生编号不能为空")
    private String sno;

    /**
     * 学生姓名
     */
    @ExcelProperty("学生姓名")
    @NotBlank(message = "学生姓名不能为空")
    private String sname;

    /**
     * 学生性别
     */
    @ExcelProperty("学生性别")
    @NotBlank(message = "性别不能为空")
    private String sgender;

    /**
     * 学生入学日期
     * */
    @ExcelProperty("入学时间")
    @DateTimeFormat("yyyy-MM-dd")
    @ColumnWidth(15)
    @NotNull(message = "入学日期不能为空")
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    private Date sbirthday;

    /**
     * 学生班级
     */
    @ExcelProperty("学生班级")
    @NotBlank(message = "学生班级不能为空")
    private String sclass;

    /**
     * 学生密码
     */
    @ExcelIgnore
    private String spassword;

    /**
     * 院系班级
     */
    @ExcelProperty("学生院系编号")
    private Integer zid;

    //所在院系信息
    @ExcelIgnore
    private College college;

    //老师
    @ExcelIgnore
    private List<Teacher> teachs;
}